package com.orc.converter;

import java.util.List;

/**
 * 表配置信息类，对应配置文件中的表信息
 */
public class TableConfig {
    private String tableName;                // 表名
    private String inputDirectory;           // 输入文件目录
    private String outputDirectory;          // 输出文件目录
    private String filePattern;              // 文件名匹配模式，如*.csv
    private char delimiter = ',';            // 字段分隔符
    private boolean hasHeader = true;        // 是否包含标题行
    private long maxFileSize = 128 * 1024 * 1024;  // 最大文件大小(128MB)
    private List<FieldConfig> fields;        // 字段配置列表
    private String compression = "SNAPPY";   // 压缩方式

    // Getters and Setters
    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getInputDirectory() {
        return inputDirectory;
    }

    public void setInputDirectory(String inputDirectory) {
        this.inputDirectory = inputDirectory;
    }

    public String getOutputDirectory() {
        return outputDirectory;
    }

    public void setOutputDirectory(String outputDirectory) {
        this.outputDirectory = outputDirectory;
    }

    public String getFilePattern() {
        return filePattern;
    }

    public void setFilePattern(String filePattern) {
        this.filePattern = filePattern;
    }

    public char getDelimiter() {
        return delimiter;
    }

    public void setDelimiter(char delimiter) {
        this.delimiter = delimiter;
    }

    public boolean isHasHeader() {
        return hasHeader;
    }

    public void setHasHeader(boolean hasHeader) {
        this.hasHeader = hasHeader;
    }

    public long getMaxFileSize() {
        return maxFileSize;
    }

    public void setMaxFileSize(long maxFileSize) {
        this.maxFileSize = maxFileSize;
    }

    public List<FieldConfig> getFields() {
        return fields;
    }

    public void setFields(List<FieldConfig> fields) {
        this.fields = fields;
    }

    public String getCompression() {
        return compression;
    }

    public void setCompression(String compression) {
        this.compression = compression;
    }
}
    